<?php
/** .-------------------------------------------------------------------
 * |  Software: [HDCMS framework]
 * |      Site: www.hdcms.com
 * |-------------------------------------------------------------------
 * |    Author: 向军 <2300071698@qq.com>
 * |    WeChat: aihoudun
 * | Copyright (c) 2012-2019, www.houdunwang.com. All Rights Reserved.
 * '-------------------------------------------------------------------*/

namespace web\admin\controller;
use \system\model\Category;
use \system\model\Tag;
class Article extends Common{
	// 创建构造函数
	public function __construct(){
		// 继承父雷类的构造函数
		parent::__construct();
		// 实例化model类的Article模型
		$this->db=new \system\model\Article;
	}
    //动作
	public function index(){
		// echo 3;die;
		// 调用模型里面的getAll方法获得所有数据
		$res=$this->db->getAll(5);
		// 分配数据
		View::with('res',$res);
		//此处书写代码...
		View::make();
	}

	/**
	 * 添加文章
	 */

	public function  store(){
		if(IS_POST){
			if($this->db->store()){
				message('添加成功',U('index'),'success');
			}
				message($this->db->getError(),'back','error');
		}	
		// echo 3; die;
		// 读取所属分类数据ate
		$cateData= (new Category())->getAll();
		// p($cateData);die;
		// 分配数据
		View::with('cateData',$cateData);
		// 获得所有分类数据
		$tagData= (new Tag())->get();
		// p($tagData);die;
		// 分配数据
		View::with('tagData',$tagData);
		// 加载模板
		View::make();
	}

	/**
	 * 编辑文章
	 */

	public function edit(){
		// 获得当前要编辑的条的id
		$aid=Q('get.aid',0,'intval');
		// p($aid);die;
		if(IS_POST){
			if($this->db->edit()){
				message('更新成功',U('index'),'success');
			}
			message($this->db->getError(),'back','error');
		}
		// 2.获得处理所属分类，调用分类模型中的getAll方法
		$cataData=(new Category())->getAll();
		// 2.1将获得的数据分配到页面的所属分类处
		// p($cataData);
		View::with('cataData',$cataData);
		// 3获得所有标签数据
		$tagData=(new Tag())->get();
		// p($tagData);die;
		// 3.1分配数据
		View::with('tagData',$tagData);
		//4.获取旧数据
		//将文章表和文章数据表通过aid相等进行关联，获取要编辑的那一条数据
		//如果关联字段一样，用表名字作为别名
		$oldData=$this->db->join('article_data','aid','=','article_aid')->where('aid',$aid)->first();
		// 4.1分配数据
		// p($oldData);die;
		View::with('oldData',$oldData);
		//5.获取当前文章所添加的标签id
		//pluck 获取单一列单一一个-----字符串
		//lists 获取单一列的多个数据-----数据
		$tids=Db::table('article_tag')->where('article_aid',$aid)->lists('tag_tid');
		// 5.1分配数据
		// p($tids);die;
		View::with('tids',$tids);
		// 1加载模板
		View::make();
	}

	/**
	 * 删除放入回收站方法
	 */
	public function del(){
		// 获得当前要删除的条的id
		$aid=Q('get.aid',0,'intval');
		// p($aid);die;
		// 将当前这条数据的is_recycle的值修改为1
		$this->db->where('aid',$aid)->update(['is_recycle'=>1]);
		message('已放入回收站',U('rubbish'),'success');
	}

	// 定义这个回收站首页的方法
	public function rubbish(){
		// 获得回收站里面的数据
		$data = $this->db->getAll(10,1);
		// 加载模板文件
		View::with('data',$data)->make();
	}
	// 定义一个恢复方法
	public  function  renew(){
		// 获得要恢复的当前id
		$aid=Q('get.aid',0,'intval');
		// 将当前的这条数据的is_recucle的值改为0
		$this->db->where('aid',$aid)->update(['is_recycle'=>0]);
		message('数据已恢复',U('index'),'success');
	}
	// 定义一个彻底删除方法
	public  function pack(){
		if($this->db->pack()) message('删除成功',U('index'),'success');
		message('删除失败',U('index'),'error');
	}
}
